package model

// ResultDTO 返回值DTO结构体
type ResultDTO[T any] struct {
	Code int32   `json:"code"`
	Msg  *string `json:"msg"`
	Data T       `json:"data"`
}

// Success 成功
func Success[T any](data T) *ResultDTO[T] {
	return &ResultDTO[T]{
		Code: 200,
		Msg:  nil,
		Data: data,
	}
}

// Fail 失败
func Fail[T any](msg string) *ResultDTO[T] {
	return &ResultDTO[T]{
		Code: 400,
		Msg:  &msg,
		Data: *new(T),
	}
}
